package com.jiangyg.mall.seckill.service;

import com.jiangyg.mall.authz.MemberInfo;
import com.jiangyg.mall.seckill.dto.SeckillDTO;
import com.jiangyg.mall.seckill.vo.SeckillSessionDetailsVO;

/**
 * 类描述：秒杀相关实现
 *
 * @author jiangyg
 * @date 2022-01-03
 */
public interface SeckillService {

    /**
     * 功能描述：更新近3天秒杀数据
     */
    void updateSeckillDataWithin3Days() throws Exception;

    /**
     * 功能描述：查询活动有效的场次及商品列表信息
     *
     * @param promotionId 活动ID
     * @return 结果
     * @throws Exception 异常
     */
    SeckillSessionDetailsVO selectSessionDetails(Long promotionId) throws Exception;

    /**
     * 功能描述：秒杀商品
     *
     * @param dto        参数
     * @param memberInfo 会员信息
     * @return 订单ID（如果秒杀失败的话则返回空字符串）
     */
    String seckill(SeckillDTO dto, MemberInfo memberInfo) throws InterruptedException;

}
